struct rtpcs_ctrl *ctrl;
u8 id;
enum rtpcs_sds_mode mode;
+
+ bool rx_pol_inv;
+ bool tx_pol_inv;
};
struct rtpcs_ctrl {
const struct rtpcs_config *cfg;
struct rtpcs_serdes serdes[RTPCS_SDS_CNT];
struct rtpcs_link *link[RTPCS_PORT_CNT];
- bool rx_pol_inv[RTPCS_SDS_CNT];
- bool tx_pol_inv[RTPCS_SDS_CNT];
struct mutex lock;
};
pr_info("%s: Configuring RTL9300 SERDES %d\n", __func__, sds->id);
/* Set SDS polarity */
- rtpcs_930x_sds_set_polarity(sds, sds->ctrl->tx_pol_inv[sds->id],
- sds->ctrl->rx_pol_inv[sds->id]);
+ rtpcs_930x_sds_set_polarity(sds, sds->tx_pol_inv, sds->rx_pol_inv);
/* Enable SDS in desired mode */
rtpcs_930x_sds_mode_set(sds, phy_mode);
}
}
- rtpcs_931x_sds_set_polarity(sds, ctrl->tx_pol_inv[sds_id],
- ctrl->rx_pol_inv[sds_id]);
+ rtpcs_931x_sds_set_polarity(sds, sds->tx_pol_inv, sds->rx_pol_inv);
val = ori & ~BIT(sds_id);
regmap_write(ctrl->map, RTL931X_PS_SERDES_OFF_MODE_CTRL_ADDR, val);
if (sds_id >= ctrl->cfg->serdes_count)
return -EINVAL;
- ctrl->rx_pol_inv[sds_id] = of_property_read_bool(child, "realtek,pnswap-rx");
- ctrl->tx_pol_inv[sds_id] = of_property_read_bool(child, "realtek,pnswap-tx");
+ sds = &ctrl->serdes[sds_id];
+ sds->rx_pol_inv = of_property_read_bool(child, "realtek,pnswap-rx");
+ sds->tx_pol_inv = of_property_read_bool(child, "realtek,pnswap-tx");
}
if (ctrl->cfg->init_serdes_common) {